Commit Diff


commit - 2db496790ac019028dbd48b34bbd3f6cfce2a2f8
commit + 1cbd9b61a25311d671cbb048d9683f2c5beb49fa
blob - 5dd1d612d44d6e1c0a3231ca8610e59090ade425
blob + 327d5ecad35fd917342d01f1144d4a17bf674620
--- iri.c
+++ iri.c
@@ -711,6 +711,21 @@ iri_human(const struct iri *iri, char *buf, size_t buf
 }
 
 int
+iri_setport(struct iri *iri, const char *portstr)
+{
+	const char	*errstr;
+	int		 port;
+
+	port = strtonum(portstr, 1, UINT16_MAX, &errstr);
+	if (errstr)
+		return (-1);
+
+	snprintf(iri->iri_portstr, sizeof(iri->iri_portstr), "%d", port);
+	iri->iri_port = port;
+	return (0);
+}
+
+int
 iri_setquery(struct iri *iri, const char *p)
 {
 	ptrdiff_t	 bufsize;
blob - dcb6c2151e2bbfe69ffb5925c192635f8033696b
blob + 03ea7a8b0a497bc4ec9b9924db76cda1c03af23c
--- iri.h
+++ iri.h
@@ -41,6 +41,7 @@ struct iri {
 int	iri_parse(const char *, const char *, struct iri *);
 int	iri_unparse(const struct iri *, char *, size_t);
 int	iri_human(const struct iri *, char *, size_t);
+int	iri_setport(struct iri *, const char *);
 int	iri_setquery(struct iri *, const char *);
 
 #endif /* IRI_H */