From 52ec6ec75f383fefb19584618a29e7bfb89007a3 Mon Sep 17 00:00:00 2001 From: MrMcX Date: Mon, 27 Dec 2021 14:21:07 +0100 Subject: [PATCH] Added util --- Documentation.md | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/Documentation.md b/Documentation.md index 99a811c..6b15900 100644 --- a/Documentation.md +++ b/Documentation.md @@ -1,3 +1,4 @@ +# package main ## Variables ### Addresses to exchange: - var **NewIP** net.IP @@ -53,4 +54,43 @@ Reads from an input and writes to and output, do things to the content in betwee sendDHCPReply creates a response DHCP packet for the VM and sends it #### func sendDHCPRequest(mt dhcp4.MessageType, reqIP net.IP) -sendDHCPRequest creates a request DHCP packet for the server and sends it \ No newline at end of file +sendDHCPRequest creates a request DHCP packet for the server and sends it + +# package util // import "proxy/util" +## Functions + +#### func DnsQueryDecode(data []byte, start int) (string, int) +DnsQueryDecode takes encoded hostnames from Microsoft and decodes it + +#### func DnsQueryEncode(in string) []byte +DnsQueryEncode takes string hostnames and encodes it to Microsoft format + +#### func GenerateMac(customMAC string) net.HardwareAddr +GenerateMac generates a random MAC address + +#### func GenerateUId(path string) string +GenerateUId generates a random UId string as hostname + +#### func GenerateXID() []byte +GenerateXID generates a random XID for DHCP + +#### func WritePIDFile(filename string) +WritePIDFile writes the processes PID to a given file + +#### func WritePcap(file string, data []byte) +WritePcap writes the provided data to a given pcap file + +## Types +#### type If bool +If is a helper type to form expressive ternary expressions being the concatenation of a type conversion and a method call such as: +`i := If(cond).Int(a, b)` +For details, see https://stackoverflow.com/a/59375088/1705598 + +#### func (c If) IP(a, b net.IP) net.IP +IP returns a if c is true, b otherwise. + +#### func (c If) If(a, b interface{}) interface{} +If returns a if c is true, b otherwise. + +#### func (c If) MAC(a, b net.HardwareAddr) net.HardwareAddr +MAC returns a if c is true, b otherwise.