@@ -1628,6 +1628,9 @@ dcc_telnet_id(int idx, char *buf, int atr)
dcc[idx].u.dupwait->atr = atr;
return;
}
+
+ dcc[idx].u.enc = (struct enc_link_dcc *) my_calloc(1, sizeof(struct enc_link_dcc));
+ link_get_method(idx);
} else {
//bots dont need this
dcc[idx].u.chat = (struct chat_info *) my_calloc(1, sizeof(struct chat_info));
@@ -402,6 +402,19 @@ void link_parse(int idx, char *buf)
+void link_get_method(int idx)
+{
+ if (!dcc[idx].type)
+ return;
+ int n = dcc[idx].u.enc->method_number;
+ if (enclink[n].name)
+ dcc[idx].u.enc->method = &(enclink[n]);
+ dcc[idx].u.enc->method_number++;
+}
/* the order of entries here determines which will be picked */
struct enc_link enclink[] = {
{ "ghost+case", LINK_GHOSTCASE, ghost_link_case, ghost_write, ghost_read, ghost_parse },
@@ -32,7 +32,7 @@ struct enc_link {
struct enc_link_dcc {
struct enc_link *method;
- int status;
+ int method_number;
};
extern struct enc_link enclink[];
@@ -47,5 +47,6 @@ extern void link_hash(int, char *);
extern void link_send(int, const char *, ...) __attribute__((format(printf, 2, 3)));
extern void link_done(int);
extern void link_parse(int, char *);
+extern void link_get_method(int);
#endif /* !_ENCLINK_H */