aboutsummaryrefslogtreecommitdiff
path: root/c_emulator/riscv_sim.c
diff options
context:
space:
mode:
authorAlex Richardson <Alexander.Richardson@cl.cam.ac.uk>2020-11-17 17:40:51 +0000
committerAlex Richardson <Alexander.Richardson@cl.cam.ac.uk>2021-03-16 16:18:11 +0000
commitfc89f3e2eebae198cf4ebe6965e9b4080de9630c (patch)
treefc46f1d01da9d0f05b34152c107f908d39321ef1 /c_emulator/riscv_sim.c
parente13df2383a311f0fbd7ee6d009bec653dce937eb (diff)
downloadsail-riscv-fc89f3e2eebae198cf4ebe6965e9b4080de9630c.zip
sail-riscv-fc89f3e2eebae198cf4ebe6965e9b4080de9630c.tar.gz
sail-riscv-fc89f3e2eebae198cf4ebe6965e9b4080de9630c.tar.bz2
Add missing newlines to error message and print the listen port
Diffstat (limited to 'c_emulator/riscv_sim.c')
-rw-r--r--c_emulator/riscv_sim.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/c_emulator/riscv_sim.c b/c_emulator/riscv_sim.c
index 8d33e95..84a5894 100644
--- a/c_emulator/riscv_sim.c
+++ b/c_emulator/riscv_sim.c
@@ -907,12 +907,12 @@ int main(int argc, char **argv)
entry = 0x80000000;
int listen_sock = socket(AF_INET, SOCK_STREAM, 0);
if (listen_sock == -1) {
- fprintf(stderr, "Unable to create socket: %s", strerror(errno));
+ fprintf(stderr, "Unable to create socket: %s\n", strerror(errno));
return 1;
}
- int opt = 1;
- if (setsockopt(listen_sock, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) == -1) {
- fprintf(stderr, "Unable to set reuseaddr on socket: %s", strerror(errno));
+ int reuseaddr = 1;
+ if (setsockopt(listen_sock, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)) == -1) {
+ fprintf(stderr, "Unable to set reuseaddr on socket: %s\n", strerror(errno));
return 1;
}
struct sockaddr_in addr = {
@@ -921,17 +921,22 @@ int main(int argc, char **argv)
.sin_port = htons(rvfi_dii_port)
};
if (bind(listen_sock, (struct sockaddr *)&addr, sizeof(addr)) == -1) {
- fprintf(stderr, "Unable to set bind socket: %s", strerror(errno));
+ fprintf(stderr, "Unable to set bind socket: %s\n", strerror(errno));
return 1;
}
if (listen(listen_sock, 1) == -1) {
- fprintf(stderr, "Unable to listen on socket: %s", strerror(errno));
+ fprintf(stderr, "Unable to listen on socket: %s\n", strerror(errno));
return 1;
}
- printf("Waiting for connection\n");
+ socklen_t addrlen = sizeof(addr);
+ if (getsockname(listen_sock, (struct sockaddr *) &addr, &addrlen) == -1) {
+ fprintf(stderr, "Unable to getsockname() on socket: %s\n", strerror(errno));
+ return 1;
+ }
+ printf("Waiting for connection on port %d.\n", ntohs(addr.sin_port));
rvfi_dii_sock = accept(listen_sock, NULL, NULL);
if (rvfi_dii_sock == -1) {
- fprintf(stderr, "Unable to accept connection on socket: %s", strerror(errno));
+ fprintf(stderr, "Unable to accept connection on socket: %s\n", strerror(errno));
return 1;
}
close(listen_sock);