diff --git a/src/main-conf.c b/src/main-conf.c
index a49b2a9e8928d9fac372f6dfb4b2fcc038f8822d..f16ecc616a2a4547b66e016a9616392f1e71a531 100644
--- a/src/main-conf.c
+++ b/src/main-conf.c
@@ -1156,6 +1156,20 @@ masscan_set_parameter(struct Masscan *masscan,
         masscan->max_rate = rate;
 
     }
+    else if (EQUALS("udp-ports", name) || EQUALS("udp-port", name)) {
+        unsigned is_error = 0;
+        masscan->scan_type.udp = 1;
+        rangelist_parse_ports(&masscan->ports, value, &is_error, Templ_UDP);
+        if (masscan->op == 0)
+            masscan->op = Operation_Scan;
+    }
+    else if (EQUALS("tcp-ports", name) || EQUALS("tcp-port", name)) {
+        unsigned is_error = 0;
+        masscan->scan_type.tcp = 1;
+        rangelist_parse_ports(&masscan->ports, value, &is_error, Templ_TCP);
+        if (masscan->op == 0)
+            masscan->op = Operation_Scan;
+    }
     else if (EQUALS("ports", name) || EQUALS("port", name)
              || EQUALS("dst-port", name) || EQUALS("dest-port", name)
              || EQUALS("destination-port", name)