diff --git a/src/common/protocol.c b/src/common/protocol.c
new file mode 100644
--- /dev/null
+++ b/src/common/protocol.c
@@ -0,0 +1,50 @@
+/*
+ Copyright 2009 Nathan Phillip Brink
+
+ This file is a part of DistRen.
+
+ DistRen is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ DistRen is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with DistRen. If not, see .
+*/
+
+#include "protocol.h"
+
+#include
+
+#define DISTREN_REQUEST_MAGIC (0x32423434)
+
+int distren_request_new(struct distren_request **req, uint32_t len, enum distren_request_type type)
+{
+ struct distren_request *newreq;
+
+ newreq = malloc(sizeof(struct distren_request));
+ if(!newreq)
+ {
+ (*req) = NULL;
+ return 1;
+ }
+
+ newreq->magic = DISTREN_REQUEST_MAGIC;
+ newreq->len = len;
+ newreq->enumsize = sizeof(enum distren_request_type);
+ newreq->type = type;
+
+ (*req) = newreq;
+ return 0;
+}
+
+int distren_request_free(struct distren_request *req)
+{
+ free(req);
+ return 0;
+}