
Roman
22.03.2018
12:55:37
в ту же директорию
проблемка в этом есть.. придётся тодка все пакеты в один совмещать, т.е. например имплементацию клиента из подпакета в главный пакет засорять

Daniel
22.03.2018
12:55:54
эээ, нет
при чем тут это?

Roman
22.03.2018
13:04:38
эээ, нет
ну смотри.. сейчас всё разбито красивенько на пакеты... есть основной пакет webwire, в нём реализация сервера и всего что касается библиотеки включая unit test'ы. в под-пакете webwire/client реализация клиента на Go, в под-пакете webwire/test расположены integration тесты

Google

Roman
22.03.2018
13:05:56
и сейчас он считает так: unit test'ы покрывают там свои 36% пакета webwire, а test это же отдельный пакет, поэтому его coverage не касается webwire, следственно там получаем 78% как на выборах, а в webwire остаётся 36%
можно конечно переместить все integration тесты в сам пакет webwire, но тогда придётся и имплементацию клиента из под пакета в главный пакет пихать во избежание circular dependency

Daniel
22.03.2018
13:07:33
так это, напишите тестов в webwire
в чем проблема-то?

Roman
22.03.2018
13:09:04
и я ищу возможность считать coverage основного пакете webwire из этого подпакета чтобы всё в одну папку не фигачить
но видимо такой возможности нет

Daniel
22.03.2018
13:09:54
если написано - перетащить в ту же директорию

Roman
22.03.2018
13:33:58

Alex
22.03.2018
13:44:07
Кто нибудь запускал как службу в Windows?
пытаюсь сделать через https://github.com/kardianos/service
Запускается но прога корнем считает windows/system32
И там создает нужные папки ну и крашется из-за того что конфига нет)

Daniel
22.03.2018
13:45:59
https://golang.org/pkg/os/#Chdir

Alex
22.03.2018
13:47:24
Но в таком случае нужно указывать в конфиге путь.

Google

Zver
22.03.2018
13:51:55

Alex
22.03.2018
13:58:54
мне просто не нравится сама идея указывать где-то путь.
Если запускаю go run все отлично. Если go build потом запускаю exe'шку любым способом, то тоже все отлично. Если же эту exe'шку запускает служба то корнем считается system32

Daniel
22.03.2018
13:59:31
так а почему должно быть иначе-то?

Zver
22.03.2018
13:59:36

Daniel
22.03.2018
13:59:51
впрочем, там, вроде, в настройках службы можно указать рабочую директорию
нет?

Alex
22.03.2018
13:59:56
Путь к приложению при go run будет ссылаться на Temp

Zver
22.03.2018
14:00:50

Alex
22.03.2018
14:01:39
рядом с exe файлом
там же нужно создать несколько папок для хранения логов и т.п.

Zver
22.03.2018
14:02:07

Alex
22.03.2018
14:03:15
Я понимаю что могу определить. Просто у каждого исходники могут хранится в разных местах

Daniel
22.03.2018
14:03:29
при чем тут исходники вообще?!

Zver
22.03.2018
14:04:27

Daniel
22.03.2018
14:04:48
а там ./

Zver
22.03.2018
14:05:05

Alex
22.03.2018
14:06:03
Когда пишешь go run в темпе лежит только exe без все прочего что мне нужно. и никак бы не хотелось чтоб там все создавалось

Google

Zver
22.03.2018
14:06:03
а там ./
А под виндой там полный путь. Надо проверить.

Daniel
22.03.2018
14:06:53

Alex
22.03.2018
14:09:57
Ну вот допустим, исходники: C:\test.
команда filepath.Abs(filepath.Dir(os.Args[0]))
при go run вернет Appdata\local\temp
при go build и запуск exe вернет C:\test
Каким же способо укажу абсолютный путь одной командой?

Daniel
22.03.2018
14:10:23
коллега
при чем тут исходники
вы распространять свое поделие как планируете?

Zver
22.03.2018
14:11:13
а там ./
Проверил. Под виндой пишет полный путь.

Daniel
22.03.2018
14:11:40
вариант, да

Alex
22.03.2018
14:11:40
Я понимаю, если речь идет только о запуске exe файла то все прекрасно заработает

Daniel
22.03.2018
14:11:54
а о чем еще может речь идти?

Alex
22.03.2018
14:12:39
при разработке конфиг у меня в исходниках. а exe в темпе

Zver
22.03.2018
14:13:50

Zver
22.03.2018
14:15:20

Egor
22.03.2018
14:17:38
всем привет) есть разгребал crypto/tls ?)

Daniel
22.03.2018
14:18:12
в чем вопрос

Egor
22.03.2018
14:18:30
генерация рандома клиента библиотекой
через
&config.Rand
я генерю через bytes.NewReader()
и пихаю туда строку в 32 байта, как по RFC положено, оно орёт типа ему мало
начинает понимать только с 96 символов что есть 3х кратное 96
вопрос: почему?
т.е. вот так должно прокатывать
config.Rand = bytes.NewReader([]byte("Wassup, it is client random....."))
но нет
а когда 96 пишу ему норм, причём судя по дампу трафика он берёт буфер на 96, срезает с конца 32 и остальное выкидывает

Google

Egor
22.03.2018
14:24:31
если есть мысли - с удовольствием послушаю

Nikita
22.03.2018
16:31:14
кто читает из config.Rand?

Daniel
22.03.2018
16:32:39

Egor
22.03.2018
16:33:10
смотрите, делаем клиента по классике, но добавляем фичу-пасхалку
config.Rand = bytes.NewReader([]byte("00000000000000000000000000000000Yooo-Yooooooo! what's up bro?!?!00000000000000000000000000000000"))
>=96 символов в противном случае оно будет ругаться

Admin
ERROR: S client not available

Daniel
22.03.2018
16:34:38

Egor
22.03.2018
16:36:10

Daniel
22.03.2018
16:36:52
ну - что-то такое пошарить, чтобы оно запускалось
но на самом деле - все можно на плейграунде завести, что стандартные либы использует

Egor
22.03.2018
16:38:54
https://play.golang.org/p/3jjVE4Va8VM
пошарю вот так, тут не должно быть сложно понять чего происходит

Daniel
22.03.2018
16:40:04
почему нет?

Egor
22.03.2018
16:41:45
ключ типа приватный вроде как

Daniel
22.03.2018
16:42:02
нагенерить временный

Nikita
22.03.2018
16:43:27
preMasterSecret := make([]byte, 48)
_, err := io.ReadFull(config.rand(), preMasterSecret[2:])
https://golang.org/src/crypto/tls/key_agreement.go
как минимум

Google

Nikita
22.03.2018
16:43:50
я думаю что config.rand используется более чем в одном месте

Daniel
22.03.2018
16:43:57
а?!
угу
коллега, а зачем вы в качестве источника рандома указываете статическую строку?

Nikita
22.03.2018
16:44:56
и соотвественно чтений более чем одно

Egor
22.03.2018
16:44:57

Daniel
22.03.2018
16:45:04
чтобы что?!

Egor
22.03.2018
16:45:14

Nikita
22.03.2018
16:45:15
отладить что-то хочет видимо
патч

Egor
22.03.2018
16:45:34

Nikita
22.03.2018
16:45:44
или сделай более чем 32
но одним символом
‘A’ * 100

Egor
22.03.2018
16:46:39
я понимаю что так работает что больше 32 и начиная от 96, но не понимаю почему
и почему он берет когда 96 32 которые в середине и пихает только их в рандом

Nikita
22.03.2018
16:47:07
ага clientHelloMsg

Egor
22.03.2018
16:47:50
типа по RFC ясно и четко что TLS1.2 - 32 размерность

Daniel
22.03.2018
16:49:32
да