- int top0 = o->top;
-
- odr_write2(o, hr->method, strlen(hr->method));
- odr_write2(o, " ", 1);
- odr_write2(o, hr->path, strlen(hr->path));
- odr_write2(o, " HTTP/", 6);
- odr_write2(o, hr->version, strlen(hr->version));
- odr_write2(o, "\r\n", 2);
+ char *cp;
+ int top0 = o->op->top;
+
+ if (!hr->method || !hr->path)
+ return 0;
+ odr_write(o, hr->method, strlen(hr->method));
+ odr_write(o, " ", 1);
+ cp = strchr(hr->path, '#');
+ odr_write(o, hr->path, cp ? (cp - hr->path) : strlen(hr->path));
+ odr_write(o, " HTTP/", 6);
+ odr_write(o, hr->version, strlen(hr->version));
+ odr_write(o, "\r\n", 2);