diff --git a/console-socket.c b/console-socket.c
index 9e1cf30..b0cd452 100644
--- a/console-socket.c
+++ b/console-socket.c
@@ -14,9 +14,53 @@
  * limitations under the License.
  */
 
+#include "console-server.h"
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/socket.h>
+#include <sys/un.h>
 #include <sys/types.h>
 
-const char console_socket_path[] = "\0obmc-console";
-const size_t console_socket_path_len = sizeof(console_socket_path) - 1;
-const char *console_socket_path_readable = console_socket_path + 1;
+#define CONSOLE_SOCKET_PREFIX "obmc-console"
 
+ssize_t console_socket_path(struct sockaddr_un *addr, const char *id)
+{
+	char *sun_path;
+	ssize_t rc;
+
+	sun_path = (char *)addr + sizeof(*addr) - sizeof(addr->sun_path);
+
+	if (id) {
+		rc = snprintf(sun_path + 1, sizeof(addr->sun_path) - 1,
+			      CONSOLE_SOCKET_PREFIX ".%s", id);
+	} else {
+		rc = snprintf(sun_path + 1, sizeof(addr->sun_path) - 1,
+			      CONSOLE_SOCKET_PREFIX);
+	}
+
+	if (rc < 0)
+		return rc;
+
+	if (rc > (sizeof(addr->sun_path) - 1)) {
+		errno = 0;
+		return -1;
+	}
+
+	sun_path[0] = '\0';
+
+	return rc + 1 /* Capture NUL prefix */;
+}
+
+ssize_t console_socket_path_readable(const struct sockaddr_un *addr,
+				     size_t addrlen, socket_path_t path)
+{
+	const char *src = (const char *)addr;
+	const size_t len = addrlen - sizeof(addr->sun_family) - 1;
+
+	memcpy(path, src + sizeof(addr->sun_family) + 1, len);
+	path[len] = '\0';
+
+	return len; /* strlen() style */
+}
