Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F131569193
D9848.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D9848.diff
View Options
Index: head/net/mpd5/Makefile
===================================================================
--- head/net/mpd5/Makefile
+++ head/net/mpd5/Makefile
@@ -3,7 +3,7 @@
PORTNAME= mpd
DISTVERSION= 5.8
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= net
MASTER_SITES= SF/${PORTNAME}/Mpd5/Mpd-${PORTVERSION}
PKGNAMESUFFIX= 5
Index: head/net/mpd5/files/patch-src_pppoe.c
===================================================================
--- head/net/mpd5/files/patch-src_pppoe.c
+++ head/net/mpd5/files/patch-src_pppoe.c
@@ -0,0 +1,126 @@
+--- src/pppoe.c.orig 2016-01-06 15:42:06 UTC
++++ src/pppoe.c
+@@ -71,6 +71,7 @@
+
+ /* Per link private info */
+ struct pppoeinfo {
++ char iface[IFNAMSIZ]; /* PPPoE interface name */
+ char path[MAX_PATH]; /* PPPoE node path */
+ char hook[NG_HOOKSIZ]; /* hook on that node */
+ char session[MAX_SESSION]; /* session name */
+@@ -165,7 +166,7 @@ static int PppoeListen(Link l);
+ static int PppoeUnListen(Link l);
+ static void PppoeNodeUpdate(Link l);
+ static void PppoeListenEvent(int type, void *arg);
+-static int CreatePppoeNode(struct PppoeIf *PIf, const char *path, const char *hook);
++static int CreatePppoeNode(struct PppoeIf *PIf, const char *iface, const char *path, const char *hook);
+
+ static void PppoeDoClose(Link l);
+
+@@ -282,6 +283,7 @@ PppoeInit(Link l)
+ pe = (PppoeInfo)(l->info = Malloc(MB_PHYS, sizeof(*pe)));
+ pe->incoming = 0;
+ pe->opened = 0;
++ snprintf(pe->iface, sizeof(pe->iface), "undefined");
+ snprintf(pe->path, sizeof(pe->path), "undefined:");
+ snprintf(pe->hook, sizeof(pe->hook), "undefined");
+ snprintf(pe->session, sizeof(pe->session), "*");
+@@ -660,6 +662,16 @@ PppoeCtrlReadEvent(int type, void *arg)
+ break;
+ }
+ #endif
++#ifdef NGM_PPPOE_PADM_COOKIE
++ case NGM_PPPOE_HURL:
++ Log(LG_PHYS, ("PPPoE: rec'd HURL \"%s\"",
++ ((struct ngpppoe_padm *)u.resp.data)->msg));
++ break;
++ case NGM_PPPOE_MOTM:
++ Log(LG_PHYS, ("PPPoE: rec'd MOTM \"%s\"",
++ ((struct ngpppoe_padm *)u.resp.data)->msg));
++ break;
++#endif
+ default:
+ Log(LG_PHYS, ("PPPoE: rec'd command %lu from \"%s\"",
+ (u_long)u.resp.header.cmd, path));
+@@ -695,6 +707,7 @@ PppoeStat(Context ctx)
+ }
+
+ Printf("PPPoE configuration:\r\n");
++ Printf("\tIface Name : %s\r\n", pe->iface);
+ Printf("\tIface Node : %s\r\n", pe->path);
+ Printf("\tIface Hook : %s\r\n", pe->hook);
+ Printf("\tSession : %s\r\n", pe->session);
+@@ -748,12 +761,8 @@ static int
+ PppoePeerIface(Link l, void *buf, size_t buf_len)
+ {
+ PppoeInfo const pppoe = (PppoeInfo)l->info;
+- char iface[IFNAMSIZ];
+
+- strlcpy(iface, pppoe->path, sizeof(iface));
+- if (iface[strlen(iface) - 1] == ':')
+- iface[strlen(iface) - 1] = '\0';
+- strlcpy(buf, iface, buf_len);
++ strlcpy(buf, pppoe->iface, buf_len);
+ return (0);
+ }
+
+@@ -880,7 +889,7 @@ PppoeGetMru(Link l, int conf)
+ }
+
+ static int
+-CreatePppoeNode(struct PppoeIf *PIf, const char *path, const char *hook)
++CreatePppoeNode(struct PppoeIf *PIf, const char *iface, const char *path, const char *hook)
+ {
+ union {
+ u_char buf[sizeof(struct ng_mesg) + 2048];
+@@ -892,11 +901,6 @@ CreatePppoeNode(struct PppoeIf *PIf, con
+ uint32_t f;
+
+ /* Make sure interface is up. */
+- char iface[IFNAMSIZ];
+-
+- strlcpy(iface, path, sizeof(iface));
+- if (iface[strlen(iface) - 1] == ':')
+- iface[strlen(iface) - 1] = '\0';
+ if (ExecCmdNosh(LG_PHYS2, iface, "%s %s up", _PATH_IFCONFIG, iface) != 0) {
+ Log(LG_ERR, ("PPPoE: can't bring up interface %s",
+ iface));
+@@ -1501,7 +1505,7 @@ PppoeGetNode(Link l)
+ l->name));
+ return;
+ }
+- if (CreatePppoeNode(&PppoeIfs[free], pi->path, pi->hook)) {
++ if (CreatePppoeNode(&PppoeIfs[free], pi->iface, pi->path, pi->hook)) {
+ strlcpy(PppoeIfs[free].ifnodepath,
+ pi->path,
+ sizeof(PppoeIfs[free].ifnodepath));
+@@ -1673,7 +1677,7 @@ PppoeSetCommand(Context ctx, int ac, cha
+ {
+ const PppoeInfo pi = (PppoeInfo) ctx->lnk->info;
+ const char *hookname = ETHER_DEFAULT_HOOK;
+- const char *colon;
++ int i;
+ #ifdef NGM_PPPOE_SETMAXP_COOKIE
+ int ap;
+ #endif
+@@ -1684,9 +1688,17 @@ PppoeSetCommand(Context ctx, int ac, cha
+ hookname = av[1];
+ /* fall through */
+ case 1:
+- colon = (av[0][strlen(av[0]) - 1] == ':') ? "" : ":";
+- snprintf(pi->path, sizeof(pi->path),
+- "%s%s", av[0], colon);
++ strlcpy(pi->iface, av[0], sizeof(pi->iface));
++ strlcpy(pi->path, pi->iface, sizeof(pi->path) - 1);
++ for (i = 0; i < sizeof(pi->path) - 1; i++) {
++ if (pi->path[i] == '.' || pi->path[i] == ':')
++ pi->path[i] = '_';
++ else if (pi->path[i] == '\0') {
++ pi->path[i] = ':';
++ pi->path[i + 1] = '\0';
++ break;
++ }
++ }
+ strlcpy(pi->hook, hookname, sizeof(pi->hook));
+ break;
+ default:
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Oct 10, 8:46 AM (21 h, 33 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
23525517
Default Alt Text
D9848.diff (4 KB)
Attached To
Mode
D9848: Fix MPD5 PPPoE support on vlans and add basic parsing of PADM messages
Attached
Detach File
Event Timeline
Log In to Comment