about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEmile <hanemile@protonmail.com>2019-06-27 00:19:44 +0200
committerEmile <hanemile@protonmail.com>2019-06-27 00:19:44 +0200
commit6ab0a595e7613d285b524f5643e828373f881fb4 (patch)
treed77e9dc2cb2b2566fcf7cb01dbfcce17349b60a0
parent0f5cb0951020f6dac2a43008eb059176bbf4c84d (diff)
done
-rw-r--r--docker-compose.yml10
-rw-r--r--example-service/Dockerfile10
-rw-r--r--example-service/go.mod3
-rw-r--r--example-service/main.go57
-rw-r--r--stdin-service/Dockerfile10
-rw-r--r--stdin-service/README.md10
-rw-r--r--stdin-service/default.txt1001
-rw-r--r--stdin-service/go.mod3
-rw-r--r--stdin-service/main.go38
9 files changed, 1142 insertions, 0 deletions
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..909630e
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,10 @@
+version: '3'
+
+services:
+    example-service:
+        build: ./example-service
+        ports:
+            - "3333:3333"
+
+    stdin-service:
+        build: ./stdin-service
diff --git a/example-service/Dockerfile b/example-service/Dockerfile
new file mode 100644
index 0000000..8fa6104
--- /dev/null
+++ b/example-service/Dockerfile
@@ -0,0 +1,10 @@
+FROM golang:latest
+
+WORKDIR /home
+COPY *.go /home/
+
+RUN go get github.com/gorilla/mux
+
+EXPOSE 3333
+
+ENTRYPOINT go run .
diff --git a/example-service/go.mod b/example-service/go.mod
new file mode 100644
index 0000000..51a5da3
--- /dev/null
+++ b/example-service/go.mod
@@ -0,0 +1,3 @@
+module example-service
+
+go 1.12
diff --git a/example-service/main.go b/example-service/main.go
new file mode 100644
index 0000000..bbdc35f
--- /dev/null
+++ b/example-service/main.go
@@ -0,0 +1,57 @@
+package main
+
+import (
+    "net"
+    "log"
+    "os"
+    "fmt"
+)
+
+const(
+    CONN_HOST = "localhost"
+    CONN_PORT = "3333"
+    CONN_TYPE = "tcp"
+)
+
+func main() {
+
+    // start a new listener
+    l, err := net.Listen(CONN_TYPE, CONN_HOST + ":" + CONN_PORT)
+    if err != nil {
+        log.Printf("Error listening: %v", err)
+        os.Exit(1)
+    }
+
+    // close the listener when done
+    defer l.Close()
+
+    for {
+
+        // accept a connection
+        conn, err := l.Accept()
+        if err != nil {
+            log.Printf("Error accepting: %v", err)
+            os.Exit(1)
+        }
+
+        // handle the connection in a new go thread
+        go handlerequest(conn)
+
+    }
+}
+
+func handlerequest(conn net.Conn) {
+    // creat a buffer storing the incomming data
+    buf := make([]byte, 1000)
+
+    // read from the connection into the buffer
+    reqLen, err := conn.Read(buf)
+    if err != nil {
+        log.Printf("Error reading: %v", err)
+        os.Exit(1)
+    }
+
+    // write back how many bytes were sent
+    conn.Write([]byte(fmt.Sprintf("Read %d bytes", reqLen)))
+    conn.Close()
+}
diff --git a/stdin-service/Dockerfile b/stdin-service/Dockerfile
new file mode 100644
index 0000000..8fa6104
--- /dev/null
+++ b/stdin-service/Dockerfile
@@ -0,0 +1,10 @@
+FROM golang:latest
+
+WORKDIR /home
+COPY *.go /home/
+
+RUN go get github.com/gorilla/mux
+
+EXPOSE 3333
+
+ENTRYPOINT go run .
diff --git a/stdin-service/README.md b/stdin-service/README.md
new file mode 100644
index 0000000..e127794
--- /dev/null
+++ b/stdin-service/README.md
@@ -0,0 +1,10 @@
+This service reads each lines from the given file and sends it to the given host with the given port over the given protocol
+
+Defaults:
+| key | value | 
+| --- | --- |
+| input file | default.txt |
+| host | localhost |
+| port | 1337 |
+| protocol | tcp | 
+
diff --git a/stdin-service/default.txt b/stdin-service/default.txt
new file mode 100644
index 0000000..78ed276
--- /dev/null
+++ b/stdin-service/default.txt
@@ -0,0 +1,1001 @@
+000
+001
+002
+003
+004
+005
+006
+007
+008
+009
+010
+011
+012
+013
+014
+015
+016
+017
+018
+019
+020
+021
+022
+023
+024
+025
+026
+027
+028
+029
+030
+031
+032
+033
+034
+035
+036
+037
+038
+039
+040
+041
+042
+043
+044
+045
+046
+047
+048
+049
+050
+051
+052
+053
+054
+055
+056
+057
+058
+059
+060
+061
+062
+063
+064
+065
+066
+067
+068
+069
+070
+071
+072
+073
+074
+075
+076
+077
+078
+079
+080
+081
+082
+083
+084
+085
+086
+087
+088
+089
+090
+091
+092
+093
+094
+095
+096
+097
+098
+099
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
+477
+478
+479
+480
+481
+482
+483
+484
+485
+486
+487
+488
+489
+490
+491
+492
+493
+494
+495
+496
+497
+498
+499
+500
+501
+502
+503
+504
+505
+506
+507
+508
+509
+510
+511
+512
+513
+514
+515
+516
+517
+518
+519
+520
+521
+522
+523
+524
+525
+526
+527
+528
+529
+530
+531
+532
+533
+534
+535
+536
+537
+538
+539
+540
+541
+542
+543
+544
+545
+546
+547
+548
+549
+550
+551
+552
+553
+554
+555
+556
+557
+558
+559
+560
+561
+562
+563
+564
+565
+566
+567
+568
+569
+570
+571
+572
+573
+574
+575
+576
+577
+578
+579
+580
+581
+582
+583
+584
+585
+586
+587
+588
+589
+590
+591
+592
+593
+594
+595
+596
+597
+598
+599
+600
+601
+602
+603
+604
+605
+606
+607
+608
+609
+610
+611
+612
+613
+614
+615
+616
+617
+618
+619
+620
+621
+622
+623
+624
+625
+626
+627
+628
+629
+630
+631
+632
+633
+634
+635
+636
+637
+638
+639
+640
+641
+642
+643
+644
+645
+646
+647
+648
+649
+650
+651
+652
+653
+654
+655
+656
+657
+658
+659
+660
+661
+662
+663
+664
+665
+666
+667
+668
+669
+670
+671
+672
+673
+674
+675
+676
+677
+678
+679
+680
+681
+682
+683
+684
+685
+686
+687
+688
+689
+690
+691
+692
+693
+694
+695
+696
+697
+698
+699
+700
+701
+702
+703
+704
+705
+706
+707
+708
+709
+710
+711
+712
+713
+714
+715
+716
+717
+718
+719
+720
+721
+722
+723
+724
+725
+726
+727
+728
+729
+730
+731
+732
+733
+734
+735
+736
+737
+738
+739
+740
+741
+742
+743
+744
+745
+746
+747
+748
+749
+750
+751
+752
+753
+754
+755
+756
+757
+758
+759
+760
+761
+762
+763
+764
+765
+766
+767
+768
+769
+770
+771
+772
+773
+774
+775
+776
+777
+778
+779
+780
+781
+782
+783
+784
+785
+786
+787
+788
+789
+790
+791
+792
+793
+794
+795
+796
+797
+798
+799
+800
+801
+802
+803
+804
+805
+806
+807
+808
+809
+810
+811
+812
+813
+814
+815
+816
+817
+818
+819
+820
+821
+822
+823
+824
+825
+826
+827
+828
+829
+830
+831
+832
+833
+834
+835
+836
+837
+838
+839
+840
+841
+842
+843
+844
+845
+846
+847
+848
+849
+850
+851
+852
+853
+854
+855
+856
+857
+858
+859
+860
+861
+862
+863
+864
+865
+866
+867
+868
+869
+870
+871
+872
+873
+874
+875
+876
+877
+878
+879
+880
+881
+882
+883
+884
+885
+886
+887
+888
+889
+890
+891
+892
+893
+894
+895
+896
+897
+898
+899
+900
+901
+902
+903
+904
+905
+906
+907
+908
+909
+910
+911
+912
+913
+914
+915
+916
+917
+918
+919
+920
+921
+922
+923
+924
+925
+926
+927
+928
+929
+930
+931
+932
+933
+934
+935
+936
+937
+938
+939
+940
+941
+942
+943
+944
+945
+946
+947
+948
+949
+950
+951
+952
+953
+954
+955
+956
+957
+958
+959
+960
+961
+962
+963
+964
+965
+966
+967
+968
+969
+970
+971
+972
+973
+974
+975
+976
+977
+978
+979
+980
+981
+982
+983
+984
+985
+986
+987
+988
+989
+990
+991
+992
+993
+994
+995
+996
+997
+998
+999
+
diff --git a/stdin-service/go.mod b/stdin-service/go.mod
new file mode 100644
index 0000000..b30f029
--- /dev/null
+++ b/stdin-service/go.mod
@@ -0,0 +1,3 @@
+module stdin-service
+
+go 1.12
diff --git a/stdin-service/main.go b/stdin-service/main.go
new file mode 100644
index 0000000..39843a1
--- /dev/null
+++ b/stdin-service/main.go
@@ -0,0 +1,38 @@
+package main
+
+import (
+    "flag"
+    "io/ioutil"
+    "log"
+    "os"
+    "net"
+    "fmt"
+)
+
+var (
+    inputFile = flag.String("file", "default.txt", "input file")
+    host = flag.String("h", "localhost", "the host to pee against")
+    port = flag.Int("p", 1337, "the port to use")
+    protocol = flag.String("protocol", "tcp", "the protocol to use")
+)
+
+func main() {
+    flag.Parse()
+
+    dat, err := ioutil.ReadFile(*inputFile)
+    if err != nil {
+        log.Printf("Error reading file: %v", err)
+        os.Exit(1)
+    }
+
+    conn, _ := net.Dial(*protocol, fmt.Sprintf("%s:%d", *host, *port))
+
+    writtenBytes, err := conn.Write(dat)
+    if err != nil {
+            log.Printf("Error accepting: %v", err)
+            os.Exit(1)
+    }
+    fmt.Printf("Written %d bytes", writtenBytes)
+
+
+}