| image: rust | ||
| variables: | ||
| PACKAGE_REGISTRY_URL: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic | ||
| stages: | ||
| - release-build | ||
| - release | ||
| release-build-linux: | ||
| stage: release-build | ||
| script: | ||
| - cargo build --release | ||
| - | | ||
| curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file "target/release/dhcplayer" "${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/linux-x86_64/dhcplayer" | ||
| rules: | ||
| - if: '$CI_COMMIT_TAG && $CI_COMMIT_TAG =~ /^v[0-9]\.[0-9]\.[0-9](-rc.+)?/' | ||
| when: always | ||
| release: | ||
| stage: release | ||
| image: registry.gitlab.com/gitlab-org/release-cli:latest | ||
| variables: | ||
| LINUX_ASSET_LINK: "{\"name\":\"dhcplayer-linux-86_64-${CI_COMMIT_TAG}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/linux-x86_64/dhcplayer\",\"type\":\"package\"}" | ||
| script: | ||
| - | | ||
| release-cli create --name "Release ${CI_COMMIT_TAG}" \ | ||
| --tag-name "${CI_COMMIT_TAG}" \ | ||
| --assets-link "${LINUX_ASSET_LINK}" | ||
| needs: | ||
| - job: release-build-linux | ||
| artifacts: true | ||
| rules: | ||
| - if: '$CI_COMMIT_TAG && $CI_COMMIT_TAG =~ /^v[0-9]\.[0-9]\.[0-9](-rc.+)?/' | ||
| when: always |
| { | ||
| "git": { | ||
| "sha1": "e596a099323b4a873ca6e2028ce3f2372e7e7690" | ||
| "sha1": "042ce1dd0210af43102957abbbe908e44b70ee05" | ||
| }, | ||
| "path_in_vcs": "" | ||
| } |
+1
-1
@@ -98,3 +98,3 @@ # This file is automatically @generated by Cargo. | ||
| name = "dhcplayer" | ||
| version = "0.1.7" | ||
| version = "0.1.8" | ||
| dependencies = [ | ||
@@ -101,0 +101,0 @@ "clap", |
+1
-1
@@ -15,3 +15,3 @@ # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO | ||
| name = "dhcplayer" | ||
| version = "0.1.7" | ||
| version = "0.1.8" | ||
| authors = ["Eloy Pérez <zer1t0ps@protonmail.com>"] | ||
@@ -18,0 +18,0 @@ description = "A tool to play and attack DHCP" |
+28
-4
@@ -78,2 +78,7 @@ use clap::{App, Arg, ArgMatches, SubCommand}; | ||
| .arg( | ||
| Arg::with_name("no-router") | ||
| .long("no-router") | ||
| .help("Don't provide routers IP"), | ||
| ) | ||
| .arg( | ||
| Arg::with_name("dns") | ||
@@ -89,2 +94,7 @@ .long("dns") | ||
| .arg( | ||
| Arg::with_name("no-dns") | ||
| .long("no-dns") | ||
| .help("Don't provide DNSs IP"), | ||
| ) | ||
| .arg( | ||
| Arg::with_name("netbios") | ||
@@ -170,4 +180,4 @@ .long("netbios") | ||
| pub dhcp_server: Option<Ipv4Addr>, | ||
| pub routers: Option<Vec<Ipv4Addr>>, | ||
| pub dns: Option<Vec<Ipv4Addr>>, | ||
| pub routers: Use<Vec<Ipv4Addr>>, | ||
| pub dns: Use<Vec<Ipv4Addr>>, | ||
| pub udp_bind: bool, | ||
@@ -196,4 +206,4 @@ pub wpad: Use<String>, | ||
| dhcp_server: helpers::parse_ip(matches, "dhcp"), | ||
| routers: helpers::parse_ips(matches, "router"), | ||
| dns: helpers::parse_ips(matches, "dns"), | ||
| routers: use_routers(matches), | ||
| dns: use_dns(matches), | ||
| wpad: use_string(matches, "wpad"), | ||
@@ -211,2 +221,16 @@ domain: helpers::parse_string(matches, "domain"), | ||
| fn use_dns(matches: &ArgMatches) -> Use<Vec<Ipv4Addr>> { | ||
| match matches.is_present("no-dns") { | ||
| true => Use::No, | ||
| false => Use::Yes(helpers::parse_ips(matches, "dns")) | ||
| } | ||
| } | ||
| fn use_routers(matches: &ArgMatches) -> Use<Vec<Ipv4Addr>> { | ||
| match matches.is_present("no-router") { | ||
| true => Use::No, | ||
| false => Use::Yes(helpers::parse_ips(matches, "router")) | ||
| } | ||
| } | ||
| fn to_u32(matches: &ArgMatches, name: &str) -> u32 { | ||
@@ -213,0 +237,0 @@ return matches.value_of(name).unwrap().parse().unwrap(); |
@@ -50,9 +50,11 @@ use crate::args; | ||
| let routers = match &args.routers { | ||
| Some(ips) => ips.clone(), | ||
| None => vec![dhcp_server], | ||
| Use::No => None, | ||
| Use::Yes(Some(ips)) => Some(ips.clone()), | ||
| Use::Yes(None) => Some(vec![dhcp_server]), | ||
| }; | ||
| let domain_servers = match &args.dns { | ||
| Some(ips) => ips.clone(), | ||
| None => vec![dhcp_server], | ||
| Use::No => None, | ||
| Use::Yes(Some(ips)) => Some(ips.clone()), | ||
| Use::Yes(None) => Some(vec![dhcp_server]), | ||
| }; | ||
@@ -112,4 +114,4 @@ | ||
| pub dhcp_server: Ipv4Addr, | ||
| pub routers: Vec<Ipv4Addr>, | ||
| pub domain_servers: Vec<Ipv4Addr>, | ||
| pub routers: Option<Vec<Ipv4Addr>>, | ||
| pub domain_servers: Option<Vec<Ipv4Addr>>, | ||
| pub netbios_servers: Option<Vec<Ipv4Addr>>, | ||
@@ -116,0 +118,0 @@ |
@@ -489,7 +489,11 @@ mod config; | ||
| if request_list.contains(&DhcpOptions::ROUTER) { | ||
| dp.add_router(dsc.routers.clone()); | ||
| if let Some(routers) = &dsc.routers { | ||
| dp.add_router(routers.clone()); | ||
| } | ||
| } | ||
| if request_list.contains(&DhcpOptions::DOMAIN_SERVER) { | ||
| dp.add_domain_server(dsc.domain_servers.clone()); | ||
| if let Some(domain_servers) = &dsc.domain_servers { | ||
| dp.add_domain_server(domain_servers.clone()); | ||
| } | ||
| } | ||
@@ -496,0 +500,0 @@ |
Sorry, the diff of this file is not supported yet